//package webflux.reactive.stream;
//
//import lombok.extern.slf4j.Slf4j;
//
//import java.util.concurrent.Flow;
//import java.util.concurrent.SubmissionPublisher;
//
///**
// * @program JavaBase
// * @description:
// * @author: zhanglu
// * @create: 2021-05-18 18:07:00
// */
//@Slf4j
//public class ReactiveProcessor extends SubmissionPublisher<String> implements Flow.Processor<String,String> {
//
//    private Flow.Subscription subscription;
//
//    @Override
//    public void onSubscribe(Flow.Subscription subscription) {
//        log.info("Processor建立订阅关系");
//        this.subscription = subscription;
//        this.subscription.request(1);
//    }
//
//    @Override
//    public void onNext(String item) {
//        item = item.toUpperCase();
//        log.info("Processor接收数据:" + item);
//        //中间处理
//        this.submit(item);    //数据发给订阅者
//        //背压
//        this.subscription.request(1);
//    }
//
//    @Override
//    public void onError(Throwable throwable) {
//        log.info("Processor处理异常");
//        throwable.printStackTrace();
//        this.subscription.cancel();
//    }
//
//    @Override
//    public void onComplete() {
//        log.info("Processor数据接收到完成");
//    }
//}
